package com.qubaopen.core.utils;

import java.io.File;
import java.io.FileInputStream;
import java.io.InputStream;
import java.security.MessageDigest;

/**
 * Java 加密算法工具类
 * 
 * @author ZhangYongYi
 * 
 */
public class SecurityUtils {

	/**
	 * 对输入字符串进行 MD5加密处理，并返回加密后的字符串
	 * 
	 * @param inString
	 *            输入的待加密的字符串
	 * @return
	 */
	public static String md5(String inString) {

		String outString = "";
		MessageDigest md = null;
		try {
			md = MessageDigest.getInstance("MD5");

			byte[] results = md.digest(inString.getBytes());

			// 将得到的字节数组变成字符串返回
			StringBuffer hexValue = new StringBuffer();

			for (int i = 0; i < results.length; i++) {
				int val = ((int) results[i]) & 0xff;
				if (val < 16)
					hexValue.append("0");
				hexValue.append(Integer.toHexString(val));
			}

			outString = hexValue.toString().toUpperCase();

		} catch (Exception e) {
			e.printStackTrace();
		}

		return outString;
	}
	
//	/**
//	 * 对传入的文件进行MD5加密
//	 * @param file
//	 * 输入的待加密的字符串
//	 * @return
//	 */
//	public static String md5FromFile(File file){
//		MessageDigest md = MessageDigest.getInstance("MD5");
//		InputStream is = new FileInputStream("file.txt");
//		try {
//		  is = new DigestInputStream(is, md);
//		  // read stream to EOF as normal...
//		}
//		finally {
//		  is.close();
//		}
//		byte[] digest = md.digest();
//		
//		
//		
//	}

}
